فونت زيبا سازفونت زيبا سازفونت زيبا سازفونت زيبا سازفونت زيبا سازفونت زيبا سازفونت زيبا ساز

لطفا از تمام مطالب دیدن فرمایید.

 نمایش کادر های محاوره ای(کنترل Print Dialog)

کنترل PrintDialog:

هربرنامه ای معمولا در قسمتی نیاز به امکان چاپ دارد. این نیاز می تواند به صورت نیاز به چاپ ساده ی یک متن و یا موارد پیشرفته تری مانند چاپ قسمتی از متن و یا صفحات مشخصی از آن باشد. درقسمت بعد به بررسی چگونگی چاپ یک متن ساده خواهیم پرداخت و نحوه ی استفاده از کلاسهای مربوط به چاپ درNET. رامشاهده خواهیم کرد.
یکی از کنترل هایی که درویژوال برای چاپ به کار می رود، کنترل      PrintDialog است. این کنترل کار چاپ را انجام نمی دهد. بلکه به کاربراجازه می دهد چاپگری را برای چاپ انتخاب کرده وتنظیمات قبل از چاپ را درآن چاپگر انجام دهد. برای مثال کاربر می تواند دراین کادرجهت صفحه، کیفیت چاپ ویا محدوده موردنظر برای چاپ را تعیین کند. شما ازاین ویژگی ها درمثال بعدی استفاده نخواهید کرد، اما همانطور که درشکل زیرمشاهده می کنید تمام این قابلیت ها به وسیله کادر PrintDialog قابل دسترسی است.
همانند تمام کادرهایی که در بخشهای قبلی مشاهده کردید، کادرPrintنیز دارای دو دکمه OK و Cancel است. بنابراین تابع ShowDialog مربوط به این کادر هم مقدار OK.DialogResult ویا Cancel.DialogResultرا بر می گرداند و می تواند از دستور if برای بررسی نتیجه برگشت داده شده توسط کادر استفاده کنید.

خاصیتهای کنترل PrintDialog :
در جدول زیرلیستی از خاصیتهای پر کاربرد کنترل PrintDialog و نیز توضیح آنها آمده است:
AllowPrintTofile == مشخص می کند آیا در کادرگزینه Print To File فعال باشد یا نه ؟
AllowSelection == مشخص می کند درکادر، دکمه رادیویی Selectin فعال باشدیا نه؟
AllowSomePages == مشخص می کند در کادر، دکمه رادیویی Pages فعال باشد یا نه؟
Document ==مشخص کننده سندی است که برای چاپ استفاده می شود.
PrinterSettings == تنظیماتی که در کادر، برای چاپگر انتخابی اعمال می شود را نگهداری می کند.
PrintToFile ==مشخص می کند آیا گزینه Print to file انتخاب شده است یا نه؟
ShowHelp ==مشخص می کند آیا دکمه فرمان Help در کادر نمایش داده شود یا نه؟
ShowNetwork ==مشخص می کند دکمه فرمان Network در کادر Print نمایش داده شود یا نه؟

استفاده ازکنترل PrintDialog :

برای نمایش کادرPrint کافی است که تابع ShowDialog آن را فراخوانی کنید. به این صورت کادر Print همانند شکل زیر نشان داده خواهد شد. همانطور که پیشتر نیز گفتم کنترل PrintDialog فقط کادری را برای تنظیمات چاپ نمایش می دهد و هیچ متنی را نمی تواند چاپ کند. قطعه کد زیر برای نمایش کادر Print می تواندمورد استفاده قرار بگیرد:

کلاس PrintDocument :

قبل از این که تابع ShowDialog در کنترل PrintDialog را فراخوانی کنید، باید خاصیت Document کلاس PrintDialog را تنظیم کنید. این خاصیت مقداری از نوع کلاس PrintDocument دریافت می کند. کلاس PrintDocument می تواند تنظیمات چاپگر را دریافت کرده و سپس با توجه به آن نتظیمات، خروجی خود (که در حقیقت همان اطلاعات مورد نظر ما است) را برای چاپ به چاپگر می فرستد. این کلاس درفضای نام System .Drawing .Printing قرار دارد. پس بهتر است که قبل از استفاده از آن برای اینکه هر بارنام کامل این فضای نام را وارد نکنیم، با استفاده از راهنمای using آن را به برنامه اضافه کنیم.

خصوصیات کلاس PrintDocument :

قبل از ادامه بهتر است نگاهی به بعضی از خصوصیات مهم کلاس PrintDocument که در جدول زیر آمده اند داشته باشیم.
DefaultPageSettings == مشخص کننده ی تنظیمات پیش فرض چاپگر برای چاپ سند(اطلاعات) مورد نظر است.
DocumentName == مشخص کننده نامی است که هنگام چاپ سند نمایش داده می شود. همچنین این نام در کادر Print Status ودر لیست اسناد موجود در صف چاپ برای مشخص کردن سند نوشته می شود.
PrintController == محتوی شیئ از کلاس PrintController است که پروسه چاپ را مدیریت می کند.
PrinterSettings == مشخص کننده چاپگری است که برای چاپ این سند استفاده می شود.

چاپ یک سند :

متد Print از کلاس PrintDocument سندی را به وسیله چاپگر مشخص شده در خاصیت PrinterSettings چاپ می کند. هنگامی که این تابع را در برنامه فراخوانی کنید، هر بار که صفحه ای بخواهد به وسیله این تابع چاپ شود متد مربوط به رویدادPrintPage از کلاس  PrintDocument نیز فراخوانی می شود. تابع Print به وسیله این متد مشخص می کند که کدام بخش از فایل باید در صفحه جاری چاپ شود. بنابراین قبل از اینکه بتواند متنی را چاپ کنید باید متدی را برای این رویداد ایجاد کنید. سپس در این متد باید یک صفحه از متن را به وسیله کلاس StreamReader از فایل خوانده و آن را به چاپگر بفرستید تا چاپ شود.
در بخش امتحان کنید زیر مشاهده خواهیم کرد که چگونه می توان محتویات یک فایل متنی را به وسیله کلاس PrintDocument چاپ کرد.

امتحان کنید: کار با کنترل PrintDialog

  •   درمحیط ویژوال استودیو، پروژه Dialogs را باز کنید.
  • با استفاده از جعبه ابزار کنترل Button دیگری را بر روی فرم قرار داده و خاصیتهای آن را مطابق لیست زیر تنظیم کنید:
خاصیت Name را برابر با btnPrint قرار دهید.
خاصیت Anchor را برابر با Top’Right قرار دهید.
خاصیت Location را برابر با 367;128 قرار دهید.
خاصیت Text را برابر با Print قرار دهید.
  • در جعبه ابزار به قسمت Printing بروید وبر روی کنترل PrintDialog دو بار کلیک کنیدتا بر روی فرم قرار بگیرد. مشاهده خواهید کرد که این کنترل نیز همانند کادرهای قبلی، در پایان قسمت طراحی فرم قرار می گیرد.
  • به قسمت ویرایشگر کد بروید و با استفاده از راهنمای using فضای نامهای زیر را به برنامه اضافه کنید:
  •  حال متغیرهایزیر را به صورت عمومی در ابتدای کلاس مربوط به فرم برنامه تعریف کنید:
  • به قسمت طراحی فرم برگردید وبر روی دکمه ی btnPrint دو بار کلیک کنید تا متد مربوط به رویداد کلیک آن ایجاد شود. سپس کد زیر را در این متد وارد کنید:

موضوعات مرتبط: نمایش کادر های محاوره ای(کنترل Print Dialog) ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : چهار شنبه 12 شهريور 1393برچسب:, | 7:58 | نویسنده : کـــــوچـــــولـــــو |

صفحه قبل 1 صفحه بعد

لطفا از دیگر مطالب نیز دیدن فرمایید
.: Weblog Themes By SlideTheme :.

Flying Icon